//
//  TKBusClientManager.h
//  TKASClient
//
//  Created by liubao on 15-6-30.
//  Copyright (c) 2015年 com.thinkive. All rights reserved.
//

#import <Foundation/Foundation.h>
#import "TKComBusClient.h"

/**
 失败
 */
#define NOTE_BUSCLIENT_ERROR @"busClientError"

/**
 成功
 */
#define NOTE_BUSCLIENT_RESULT @"busClientResult"

/**
 连接/认证
 */
#define NOTE_BUSCLIENT_CONNECT @"busClientConnect"

/**
 断开
 */
#define NOTE_BUSCLIENT_DISCONNECT @"busClientDisConnect"

/**
 *  @author 刘宝, 2017-01-14 15:01:35
 *
 *  退出连接
 */
#define NOTE_BUSCLIENT_LOGOUT @"busClientLogout"

/**
 *  @Author 刘宝, 2014-11-25 23:11:31
 *
 *  数据推送协议通知
 */
#define NOTE_BUSCLIENT_PUSH_DATA @"note_bus_push_data"

/**
 *  @Author 刘宝, 2015-06-29 22:06:22
 *
 *  BusClient管理中心，管理长/短连接
 */
@interface TKBusClientManager : NSObject<TKBusClientDelegate>

/**
 *  @Author 刘宝, 2015-05-04 13:05:39
 *
 *  单例模式
 *
 *  @return
 */
+(TKBusClientManager *)shareInstance;

/**
 *  @Author 刘宝, 2015-09-15 18:09:26
 *
 *  是否网络ok
 */
@property (nonatomic,assign)BOOL isNetWorkOK;

/**
 *  @Author 刘鹏民, 15-05-14 17:05:05
 *
 *  @brief  启动服务
 *
 *  @param serverName 服务名称
 *  @param version 服务版本
 */
-(void)start:(NSString *)serverName version:(TKBusClientVersion)version;

/**
 *  @Author 刘宝, 2015-05-04 13:05:49
 *
 *  重启服务
 *  @param serverName 服务名称
 *  @param version 服务版本
 */
-(void)restart:(NSString *)serverName version:(TKBusClientVersion)version;

/**
 *  @Author 刘宝, 2015-05-04 13:05:01
 *
 *  停止服务
 *  @param serverName 服务名称
 */
-(void)stop:(NSString *)serverName;

/**
 *  @Author 刘宝, 2015-06-29 23:06:41
 *
 *  删除服务
 *
 *  @param serverName 服务名称
 */
-(void)remove:(NSString *)serverName;

/**
 *  @Author 刘宝, 2015-06-29 23:06:11
 *
 *  获取服务连接
 *
 *  @param serverName 服务名
 *  @param version 版本号
 *
 *  @return 服务长连接
 */
-(TKComBusClient *)getTKBusClient:(NSString *)serverName version:(TKBusClientVersion)version;

/**
 *  @Author 刘宝, 2015-09-15 09:09:31
 *
 *  获取服务连接
 *
 *  @param serverName    服务名
 *  @param version       版本号
 *  @param isLongConnect 是否长连接
 *
 *  @return
 */
-(TKComBusClient *)getTKBusClient:(NSString *)serverName version:(TKBusClientVersion)version isLongConnect:(BOOL)isLongConnect;

/**
 *  @Author 刘宝, 2015-09-16 23:09:27
 *
 *  服务器是否可用
 *
 *  @param serverName
 *
 *  @return 
 */
-(BOOL)isServerOK:(NSString *)serverName;

/**
 *  @author 刘宝, 2017-01-14 15:01:30
 *
 *  获取指定名字缓存的长连接对象
 *
 *  @param serverName
 *
 *  @return
 */
-(TKComBusClient *)getCacheTKBusLongClient:(NSString *)serverName;

/**
 *  @author 刘宝, 2017-01-14 15:01:30
 *
 *  获取所有缓存的长连接对象
 *
 *  @param serverName
 *
 *  @return
 */
-(NSDictionary *)getAllCacheTKBusLongClient;

@end
